#include "SypEngine.h"

#ifdef CHECKMEM
#include "mmgr.h"
#endif
namespace Syp
{

	NIndexedMesh*	NIndexedMesh::createNIndexedMesh(const String& filename,ModelType t)
	{
		return new NIndexedMesh(filename,t);
	}
	void NIndexedMesh::destroyNIndexedMesh(NIndexedMesh* mesh)
	{
		delete mesh;
	}

	NIndexedMesh::NIndexedMesh(const String& filename,ModelType t):BaseMesh(filename)
	{
		type = t;	
		//Generate VBO if it is static
		Renderer::getRenderer().addMesh(this);		
	}

	void NIndexedMesh::draw()
	{
		Renderer::getRenderer().drawNIndexed(this);
	}

	void NIndexedMesh::removeFromVRAM()
	{
		Renderer::getRenderer().removeMeshFromVRAM(this);
	}

	void NIndexedMesh::updateMesh()
	{
		Renderer::getRenderer().updateMesh(this);
	}

	NIndexedMesh::~NIndexedMesh()
	{
		//remove mesh from gfx card
		removeFromVRAM();
	}

}
